package main

import (
	"fmt"
	"io/ioutil"
)

/*
遍历文件夹
	1.采用ioutil包下的readDir()方法，可以获取指定目录下的内容，返回文件及子目录。但仅仅返回一层，所以通过递归算法实现遍历该目录下的所有内容
*/
func readFromFilebyIoutil(dirname string, level int) {
	//level是用来记录当前递归的层次，生成带有层次感的空格
	s := "|--"
	for i := 0; i < level; i++ {
		s = "|  " + s
	}
	ret, err := ioutil.ReadDir(dirname)
	if err != nil {
		fmt.Printf("read file failed,err:%v", err)
		return
	}
	for _, file := range ret {
		filename := dirname + "\\" + file.Name()
		fmt.Printf("%s%s\n", s, filename)
		//递归调用方法，如果该文件还是目录，接着打印该目录下的文件
		if file.IsDir() {
			readFromFilebyIoutil(dirname, level+1)
		}
	}
}
func main() {
	dirname := "D:\\从入门到放弃\\fastdfs"
	readFromFilebyIoutil(dirname, 0)
}
